package scene

type EntityType int8

const (
	EntityTypeNone     EntityType = iota //零值五任何意义，搜索时代表所有实体
	EntityTypePlayer                     //Player
	EntityTypeNPC                        //NPC
	EntityTypeMonster                    //怪物
	EntityTypeItem                       //物品
	EntityTypeObstacle                   //障碍物
)

type EntityStatus int32

const (
	EntityStatusNone        EntityStatus = 0
	EntityStatusDisconnect  EntityStatus = 1
	EntityStatusChangeScene EntityStatus = 2 //正在传送中
	EntityStatusMovement    EntityStatus = 3 //移动
)

type Entity interface {
	GetX() float64       //获取当前位置
	GetY() float64       //获取当前位置
	GetID() int64        //唯一标识
	GetType() EntityType //实体类型
	SetLayer(l *Layer)   //设置实体所在层
	GetLayer() *Layer    //获取实体所在层
	GetStatus() EntityStatus
	Update() //更新状态
}

type Position struct {
	X, Y float64
}

func (p *Position) GetX() float64 {
	return p.X
}
func (p *Position) GetY() float64 {
	return p.Y
}
